Двусвязный список расширяет возможности обычного списка, добавляя обратную связь.
struct Node {
int data;
Node* next;
Node* prev; // Обратная связь
Node(int val) : data(val), next(nullptr), prev(nullptr) {}
};
class DoublyLinkedList {
Node* head = nullptr;
Node* tail = nullptr;
// ... методы push/pop
};